package com.arpa.wms.mapper;

import com.arpa.wms.domain.dto.WmsTaskDTO;
import com.arpa.wms.domain.entity.WmsTask;
import com.arpa.wms.domain.vo.WmsTaskVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 任务中心 Mapper 接口
 * </p>
 *
 * @author LEO
 * @since 2020-10-09
 */
public interface WmsTaskMapper extends BaseMapper<WmsTask> {

    /**
     * 查询列表
     * @param wmsTaskDTO
     * @return
     */
    List<WmsTaskVO> queryList(WmsTaskDTO wmsTaskDTO);

    /**
     * 查询合计,包含总数
     * @param wmsTaskDTO
     * @return
     */
    WmsTaskVO queryListSum(WmsTaskDTO wmsTaskDTO);
     /**
      *  @author: Allen chen
      *  @Date: 2020/10/22 11:25
      *  @Description:
      */
    WmsTaskVO queryPickingTaskByCode(WmsTaskDTO wmsTaskDTO);

    /**
     * @description
     * 根据上架单编码更新作业量
     * @author xuyang
     * @date 2020/10/31 8:19
     * @param putawayCode:
     **/
    int putawayUpdateJobQuantity(@Param("putawayCode") String putawayCode, @Param("groupCode") String groupCode);

    /**
     * @param sourceCode :
     * @description 根据拣货单号更新作业量
     * @author xuyang
     * @date 2020/11/4 8:36
     **/
    int pickingUpdateJobQuantity(@Param("sourceCode") String sourceCode, @Param("groupCode") String groupCode);

    /**
     * @description
     * 移位操作时，根据任务号更新任务的作业量
     * @author xuyang
     * @date 2020/12/7 16:03
     * @param code:
     **/
    int moveUpdateJobQuantity(@Param("code") String code, @Param("groupCode") String groupCode);

    int updateStatusIfFinishJob(@Param("code") String taskCode, @Param("status") String status, @Param("groupCode") String groupCode);

    /**
     * PDA 查询列表
     * @param wmsTaskDTO
     * @return
     */
    List<WmsTaskVO> queryList4Pda(WmsTaskDTO wmsTaskDTO);

    /**
     * PDA 查询合计,包含总数
     * @param wmsTaskDTO
     * @return
     */
    WmsTaskVO queryListSum4Pda(WmsTaskDTO wmsTaskDTO);

    List<WmsTaskVO> pdaTaskList(WmsTaskDTO wmsTaskDTO);

    WmsTaskVO pdaTaskListSum(WmsTaskDTO wmsTaskDTO);

    /**
     * 查询各订单标识对应的任务信息
     */
    List<WmsTaskVO> queryTaskInfoByOrderTag(WmsTaskDTO wmsTaskDTO);

    /**
     * 根据单号结束任务
     * @author liuxr
     * @date 2021/5/15 8:48
     * @param sourceCode 单号
     * @param userCode 操作人code
     * @param userName 操作人名称
     * @return int
     */
    int endTask(@Param("sourceCode") String sourceCode,@Param("userCode") String userCode,
                @Param("userName") String userName, @Param("groupCode") String groupCode);
}
